# -*- coding: utf-8 -*-

#This file is part of pyLot library.
#
# pyLot is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyLot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pyLot.  If not, see <http://www.gnu.org/licenses/>.

__author__ = u'Pierre Puiseux, Guillaume Baty'
__copyright__ = u"Copyright 2011-2012 (C) andheo, Université de Pau et des Pays de l'Adour"
__credits__ = [u'Pierre Puiseux', u'Guillaume Baty']
__license__ = "GNU Lesser General Public License"

REQUIRED = {}

def main():

  from pyLot.core import CommandGroup, APPLICATION

  process = APPLICATION.getProcessHandler()
  process.stdout_mode = None # Ré-initialisation aux valeurs par défaut
  # Étape obligatoire pour le moment car les changements sont conservés d'une
  # exécution à l'autre (BUG dans l'interface graphique seulement).

  # A. Création du groupe de commande:

  cg = CommandGroup(u'listdir')
  cg.addShellCmd(u'ls')

  # Changement du mode de sortie
  cg.stdout_mode = [u'save']

  # Exécution et récupération de la sortie
  process.run(cg)
  cmd_ls = cg.shellcmds[0]
  assert(len(cmd_ls.stdout) > 0)

  # B. Exécution directe de commandes
  cg = process.runCmd(u'ls')
  cmd_ls = cg.shellcmds[0]
  assert(cmd_ls.stdout is None) # mode par défaut, sortie écran, pas de sauvegarde

  # Changement de mode du process_handler
  process.stdout_mode = [u'save']
  cg = process.runCmd(u'ls')
  cmd_ls = cg.shellcmds[0]
  assert(len(cmd_ls.stdout) > 0)

  # Utiliser le mode
  process.stdout_mode = [u'write', u'save']
  # pour avoir la sortie à l'écran et dans les variables.


